<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="dmsstyle.css" />
<title>The dmv Schema</title>
</head>

<body>

  <div id="header"> <div class="headerBar"> </div> </div>

  <div id="main">

    <div id="content">

<!-- org.dmd.dms.doc.web.SchemaPage.writeSchemaSummary(SchemaPage.java:336) -->

  <div class="schemaName"> dmv </div>

  <div class="summary">

<!-- org.dmd.dms.doc.web.SchemaPage.writeClassSummary(SchemaPage.java:371) -->

    <div class="classList">
    <h2> Classes (10)</h2>
    <table>
      <tr>
      <td class="spacer"> </td>
      <td> <a class="deflink" href="#AllowedAttributesRuleData"> AllowedAttributesRuleData </a></td>
      <td> ruleName </td>
      </tr>
      <tr>
      <td class="spacer"> </td>
      <td> <a class="deflink" href="#CheckAttributesBasedOnValueRuleData"> CheckAttributesBasedOnValueRuleData </a></td>
      <td> ruleName </td>
      </tr>
      <tr>
      <td class="spacer"> </td>
      <td> <a class="deflink" href="#InitRuleData"> InitRuleData </a></td>
      <td> ruleName </td>
      </tr>
      <tr>
      <td class="spacer"> </td>
      <td> <a class="deflink" href="#NumericRangeRuleData"> NumericRangeRuleData </a></td>
      <td> ruleName </td>
      </tr>
      <tr>
      <td class="spacer"> </td>
      <td> <a class="deflink" href="#OneOfTheseAttributesRequiredRuleData"> OneOfTheseAttributesRequiredRuleData </a></td>
      <td> ruleName </td>
      </tr>
      <tr>
      <td class="spacer"> </td>
      <td> <a class="deflink" href="#PatternMatchRuleData"> PatternMatchRuleData </a></td>
      <td> ruleName </td>
      </tr>
      <tr>
      <td class="spacer"> </td>
      <td> <a class="deflink" href="#ReferencedAttributeTypeRuleData"> ReferencedAttributeTypeRuleData </a></td>
      <td> ruleName </td>
      </tr>
      <tr>
      <td class="spacer"> </td>
      <td> <a class="deflink" href="#RelatedNumbersRuleData"> RelatedNumbersRuleData </a></td>
      <td> ruleName </td>
      </tr>
      <tr>
      <td class="spacer"> </td>
      <td> <a class="deflink" href="#UCOAllowedAttributesRuleData"> UCOAllowedAttributesRuleData </a></td>
      <td> ruleName </td>
      </tr>
      <tr>
      <td class="spacer"> </td>
      <td> <a class="deflink" href="#ValueLengthRuleData"> ValueLengthRuleData </a></td>
      <td> ruleName </td>
      </tr>
    </table>
    </div><!-- org.dmd.dms.doc.web.SchemaPage.writeEnumSummary(SchemaPage.java:467) -->

    <div class="enumList">
    <h2>Enums (1)</h2>
    <ul>
      <li> <a class="deflink" href="#NumericRelationEnum"> NumericRelationEnum </a></li>
    </ul>
    </div><!-- org.dmd.dms.doc.web.SchemaPage.writeRuleDefinitionSummary(SchemaPage.java:518) -->

    <div class="ruledefs">
    <h2> Rule Definitions (10)</h2>
    <ul>
      <li> <a class="deflink" href="#AllowedAttributesRuleData"> AllowedAttributesRule </a></li>
      <li> <a class="deflink" href="#CheckAttributesBasedOnValueRuleData"> CheckAttributesBasedOnValueRule </a></li>
      <li> <a class="deflink" href="#InitRuleData"> InitRule </a></li>
      <li> <a class="deflink" href="#NumericRangeRuleData"> NumericRangeRule </a></li>
      <li> <a class="deflink" href="#OneOfTheseAttributesRequiredRuleData"> OneOfTheseAttributesRequiredRule </a></li>
      <li> <a class="deflink" href="#PatternMatchRuleData"> PatternMatchRule </a></li>
      <li> <a class="deflink" href="#ReferencedAttributeTypeRuleData"> ReferencedAttributeTypeRule </a></li>
      <li> <a class="deflink" href="#RelatedNumbersRuleData"> RelatedNumbersRule </a></li>
      <li> <a class="deflink" href="#UCOAllowedAttributesRuleData"> UCOAllowedAttributesRule </a></li>
      <li> <a class="deflink" href="#ValueLengthRuleData"> ValueLengthRule </a></li>
    </ul>
    </div><!-- org.dmd.dms.doc.web.SchemaPage.writeRuleInstancesSummary(SchemaPage.java:535) -->

    <div class="ruledefs">
    <h2> Rule Instances (19)</h2>
    <ul>
      <li> <a class="deflink" href="#dmvAllowedAttributes"> An object's attributes must conform to its schema. </a></li>
      <li> <a class="deflink" href="#dmvBasedOnAttribute"> The basedOnAttribute attribute must refer to a single-valued attribute </a></li>
      <li> <a class="deflink" href="#dmvDefinedInModuleAttribute"> The attribute referred to by the definedInModuleAttribute attribute must be single-valued. </a></li>
      <li> <a class="deflink" href="#dmvDefinitionNameCheck"> The name attribute must start with a letter, followed by a mix of letters and numbers. </a></li>
      <li> <a class="deflink" href="#dmvEnumDefinitionNameCheck"> An EnumDefinition's name must end with Enum </a></li>
      <li> <a class="deflink" href="#dmvFileExtensionCheck"> A file extension should be comprised of alpha-numeric characters. </a></li>
      <li> <a class="deflink" href="#dmvIncludeOrExclude"> At least one of the excludeThisAttribute or includeThisAttribute attributes must be specified. </a></li>
      <li> <a class="deflink" href="#dmvLhs"> The lhs attribute must be a single valued Integer, Long, Float or Double </a></li>
      <li> <a class="deflink" href="#dmvMaxOrMin"> At least one of the maxLength or minLength attributes must be specified. </a></li>
      <li> <a class="deflink" href="#dmvMaximumLength"> The maxLength must be 1 or more </a></li>
      <li> <a class="deflink" href="#dmvMinLessThanMax"> The minLength must be less than the maxLength. </a></li>
      <li> <a class="deflink" href="#dmvMinimumLength"> The minLength must be 1 or more </a></li>
      <li> <a class="deflink" href="#dmvMinimumOrMaximum"> Either nrrMinimum or nrrMaximum must be specified. </a></li>
      <li> <a class="deflink" href="#dmvModuleDependenceAttribute"> The attribute referred to by the moduleDependenceAttribute attribute must be multi-valued. </a></li>
      <li> <a class="deflink" href="#dmvNRRApplyToAttribute"> The applyToAttribute attribute in a NumericRangeRuleData instance must refer to an Integer, Long, Float or Double attribute </a></li>
      <li> <a class="deflink" href="#dmvNoMustInExtensible"> If a ClassDefinition's classType is AUXILIARY, it can't have mandatory attributes </a></li>
      <li> <a class="deflink" href="#dmvRATRApplyToAttribute"> The applyToAttribute attribute in a ReferencedAttributeTypeRuleData must refer to a single valued AttributeDefinition </a></li>
      <li> <a class="deflink" href="#dmvRhs"> The rhs attribute must be a single valued Integer, Long, Float or Double </a></li>
      <li> <a class="deflink" href="#dmvValueorAttribute"> Either allowedType or allowedValueType must be specified </a></li>
    </ul>
    </div>  </div> <!--  summary -->

<!-- org.dmd.dms.doc.web.SchemaPage.writeClasses(SchemaPage.java:203) -->

<div class="classDetails">

<h2> Class Details </h2>

<!-- org.dmd.dms.doc.web.ClassFormatter.dumpDetails(ClassFormatter.java:23) -->

  <table>

    <tr> <td class="className" colspan="4"> <a name="AllowedAttributesRuleData"> AllowedAttributesRuleData </a> </td></tr>
<!-- org.dmd.dms.doc.web.ClassFormatter.description(ClassFormatter.java:54) -->

    <tr>
      <td class="spacer"> </td>
      <td>Description</td>
      <td colspan="2">The AllowedAttributesRule will determine whether or not the 
 attributes of a DMO conform to the must/may specification of its class definition.
 For classes of type EXTENSIBLE, only the must have attributes are checked.
 <p/>
 Regardless of the environment in which you are running, you must ensure that the
 DmcOmni has been loaded with the appropriate schema. If you are using the dark-matter
 Model View Whatever (MVW) project for GWT, this aspect is taken care of automatically.
 <p/>
 Since this is a GLOBAL class rule, there will only ever be a single instance of
 this rule created as part of the dmv schema, as indicated below:
 <pre>
 AllowedAttributesRuleData
 ruleName    dmvAllowedAttributes
 ruleTitle 	 An object's attributes must conform to its schema.
 description Ensures that must/may attribute rules are followed.
 </pre>
</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.type(ClassFormatter.java:65) -->

    <tr>
      <td class="spacer"> </td>
      <td class="label">Type</td>
      <td colspan="2">STRUCTURAL</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.derivedFrom(ClassFormatter.java:79) -->

    <tr>
      <td class="spacer"> </td>
      <td>Derived from</td>
      <td colspan="2">
      <a href="meta.html#RuleData">RuleData</a>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.namedBy(ClassFormatter.java:151) -->

    <tr>
      <td class="spacer"> </td>
      <td>Named by</td>
      <td colspan="2"> <a href="meta.html#ruleName">ruleName</a> </td>
    </tr>

  </table>

  <table>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Must have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleName">ruleName</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#RuleName">RuleName</a> </td>
      <td> The ruleName attribute is used to store a single camelCase format name for a rule.
 The name starts with a single letter and can be followed by a mix of letters and numbers. No spaces or 
 other characters are allowed.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleTitle">ruleTitle</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The title of a rule.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">May have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#applyToClass">applyToClass</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#ClassDefinition">ClassDefinition</a> </td>
      <td> The class to which a rule should be applied.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#description">description</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The description attribute is used to provide descriptive
 documentation for schema related definitions. The text provided should conform
 to XHTML concepts since it will be dumped in the context of the generated HTML
 documentation.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#immediateHalt">immediateHalt</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Boolean">Boolean</a> </td>
      <td> The immediateHalt flag is used to indicate that no further
 rule processing should occur if a rule fails. It is an optional attribute on rule instance
 objects. In somes cases, there is no point in continuing with the application of a set 
 of rules, so this flag gives the option of halting further processing.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgKey">msgKey</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgKey may be specified on rule instances to indicate the key to be used
 to look up translated messages. This is primarily a GWT mechanism, but should be applicable in
 other contexts.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgParam">msgParam</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgParam allows for the specification of parameters to be substituted
 into translated messages.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Internal use attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#definedIn">definedIn</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#SchemaDefinition">SchemaDefinition</a> </td>
      <td> Indicates the schema in which a type, attribute or class is defined.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#file">file</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> Indicates the file from which a definition was loaded.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#lineNumber">lineNumber</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Integer">Integer</a> </td>
      <td> Indicates the line number of the file from which a definition was loaded.
      </td>
    </tr>

  </table>

<!-- org.dmd.dms.doc.web.ClassFormatter.dumpDetails(ClassFormatter.java:23) -->

  <table>

    <tr> <td class="className" colspan="4"> <a name="CheckAttributesBasedOnValueRuleData"> CheckAttributesBasedOnValueRuleData </a> </td></tr>
<!-- org.dmd.dms.doc.web.ClassFormatter.description(ClassFormatter.java:54) -->

    <tr>
      <td class="spacer"> </td>
      <td>Description</td>
      <td colspan="2">The CheckAttributesBasedOnValueRule allows you to specify
 that certain optional attributes must exist (or not exist) based on the value
 of another single valued attribute in an object. This allows for finer control of must/may
 attributes based on other values in an object. An example usage (from
 the dark-matter validation schema) looks like:
 <pre>
 CheckAttributesBasedOnValueRuleData
 ruleName              dmvNoMustInExtensible
 ruleTitle             If a ClassDefinition's classType is AUXILIARY, it can't have mandatory attributes
 applyToClass          ClassDefinition
 basedOnAttribute      classType
 basedOnValue          AUXILIARY
 excludeThisAttribute  must
 description           An AUXILIARY class can be added to an object dynamically and
  we don't allow mandatory attributes in such classes.
 </pre>
 If the basedOnAttribute doesn't exist in the object being validated, the rule does nothing.
</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.type(ClassFormatter.java:65) -->

    <tr>
      <td class="spacer"> </td>
      <td class="label">Type</td>
      <td colspan="2">STRUCTURAL</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.derivedFrom(ClassFormatter.java:79) -->

    <tr>
      <td class="spacer"> </td>
      <td>Derived from</td>
      <td colspan="2">
      <a href="meta.html#RuleData">RuleData</a>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.namedBy(ClassFormatter.java:151) -->

    <tr>
      <td class="spacer"> </td>
      <td>Named by</td>
      <td colspan="2"> <a href="meta.html#ruleName">ruleName</a> </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendClassRuleInfo(ClassFormatter.java:222) -->

    <tr>
      <td class="spacer"> </td>
      <td>Rules</td>
<td>
<table>
<tr> <td class="attributeRule">
<a class="blackText" href="dmv.html#dmvIncludeOrExclude"> At least one of the excludeThisAttribute or includeThisAttribute attributes must be specified. </a></td> </tr>

</table>
</td>
  </table>

  <table>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Must have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#basedOnAttribute">basedOnAttribute</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </td>
      <td> The basedOnAttribute allows for the specification of an attribute on which
 some type of a decision is made.
<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttributeRuleInfo(ClassFormatter.java:268) -->

<table>
<tr> <td class="attributeRule">
<a class="blackText" href="dmv.html#dmvBasedOnAttribute"> The basedOnAttribute attribute must refer to a single-valued attribute </a></td> </tr>

</table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#basedOnValue">basedOnValue</a> </td>
      <td class="valueType"> P HS </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The basedOnValue attribute allows for the specification of values for some
 aspect of a rule.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleName">ruleName</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#RuleName">RuleName</a> </td>
      <td> The ruleName attribute is used to store a single camelCase format name for a rule.
 The name starts with a single letter and can be followed by a mix of letters and numbers. No spaces or 
 other characters are allowed.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleTitle">ruleTitle</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The title of a rule.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">May have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#applyToClass">applyToClass</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#ClassDefinition">ClassDefinition</a> </td>
      <td> The class to which a rule should be applied.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#description">description</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The description attribute is used to provide descriptive
 documentation for schema related definitions. The text provided should conform
 to XHTML concepts since it will be dumped in the context of the generated HTML
 documentation.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#excludeThisAttribute">excludeThisAttribute</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </td>
      <td> The excludeThisAttribute indicates an optional attribute that must be
 excluded from an object under certain conditions.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#immediateHalt">immediateHalt</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Boolean">Boolean</a> </td>
      <td> The immediateHalt flag is used to indicate that no further
 rule processing should occur if a rule fails. It is an optional attribute on rule instance
 objects. In somes cases, there is no point in continuing with the application of a set 
 of rules, so this flag gives the option of halting further processing.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#includeThisAttribute">includeThisAttribute</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </td>
      <td> The includeThisAttribute indicates an optional attribute that must be
 present under certain conditions.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgKey">msgKey</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgKey may be specified on rule instances to indicate the key to be used
 to look up translated messages. This is primarily a GWT mechanism, but should be applicable in
 other contexts.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgParam">msgParam</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgParam allows for the specification of parameters to be substituted
 into translated messages.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Internal use attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#definedIn">definedIn</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#SchemaDefinition">SchemaDefinition</a> </td>
      <td> Indicates the schema in which a type, attribute or class is defined.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#file">file</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> Indicates the file from which a definition was loaded.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#lineNumber">lineNumber</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Integer">Integer</a> </td>
      <td> Indicates the line number of the file from which a definition was loaded.
      </td>
    </tr>

  </table>

<!-- org.dmd.dms.doc.web.ClassFormatter.dumpDetails(ClassFormatter.java:23) -->

  <table>

    <tr> <td class="className" colspan="4"> <a name="InitRuleData"> InitRuleData </a> </td></tr>
<!-- org.dmd.dms.doc.web.ClassFormatter.description(ClassFormatter.java:54) -->

    <tr>
      <td class="spacer"> </td>
      <td>Description</td>
      <td colspan="2">The InitRule allows you to specify attribute values for a 
 newly created object or an object read from file or received in a CreateRequest
 (for instance). The InitRule will only set the values of attributes that are
 missing from the object; existing attributes are not alterred. An example
 usage might be:
 <p/>
 <pre>
 InitRuleData
 ruleName     <schema>InitX
 ruleTitle    Initialize the X class
 applyToClass X
 attributeA   some value
 attributeB   42
 attributeC   something
 attributeC   something else
 description  This provides a good initial setup for X objects. Other setups
  may be required in other circumstances.
 </pre>
</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.type(ClassFormatter.java:65) -->

    <tr>
      <td class="spacer"> </td>
      <td class="label">Type</td>
      <td colspan="2">EXTENSIBLE</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.derivedFrom(ClassFormatter.java:79) -->

    <tr>
      <td class="spacer"> </td>
      <td>Derived from</td>
      <td colspan="2">
      <a href="meta.html#RuleData">RuleData</a>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.namedBy(ClassFormatter.java:151) -->

    <tr>
      <td class="spacer"> </td>
      <td>Named by</td>
      <td colspan="2"> <a href="meta.html#ruleName">ruleName</a> </td>
    </tr>

  </table>

  <table>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Must have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleName">ruleName</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#RuleName">RuleName</a> </td>
      <td> The ruleName attribute is used to store a single camelCase format name for a rule.
 The name starts with a single letter and can be followed by a mix of letters and numbers. No spaces or 
 other characters are allowed.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleTitle">ruleTitle</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The title of a rule.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">May have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#applyToClass">applyToClass</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#ClassDefinition">ClassDefinition</a> </td>
      <td> The class to which a rule should be applied.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#description">description</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The description attribute is used to provide descriptive
 documentation for schema related definitions. The text provided should conform
 to XHTML concepts since it will be dumped in the context of the generated HTML
 documentation.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#immediateHalt">immediateHalt</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Boolean">Boolean</a> </td>
      <td> The immediateHalt flag is used to indicate that no further
 rule processing should occur if a rule fails. It is an optional attribute on rule instance
 objects. In somes cases, there is no point in continuing with the application of a set 
 of rules, so this flag gives the option of halting further processing.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgKey">msgKey</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgKey may be specified on rule instances to indicate the key to be used
 to look up translated messages. This is primarily a GWT mechanism, but should be applicable in
 other contexts.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgParam">msgParam</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgParam allows for the specification of parameters to be substituted
 into translated messages.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Internal use attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#definedIn">definedIn</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#SchemaDefinition">SchemaDefinition</a> </td>
      <td> Indicates the schema in which a type, attribute or class is defined.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#file">file</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> Indicates the file from which a definition was loaded.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#lineNumber">lineNumber</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Integer">Integer</a> </td>
      <td> Indicates the line number of the file from which a definition was loaded.
      </td>
    </tr>

  </table>

<!-- org.dmd.dms.doc.web.ClassFormatter.dumpDetails(ClassFormatter.java:23) -->

  <table>

    <tr> <td class="className" colspan="4"> <a name="NumericRangeRuleData"> NumericRangeRuleData </a> </td></tr>
<!-- org.dmd.dms.doc.web.ClassFormatter.description(ClassFormatter.java:54) -->

    <tr>
      <td class="spacer"> </td>
      <td>Description</td>
      <td colspan="2">The NumericRangeRule ensures that a numeric attribute has values
 that fall within a given range. It can be used for both single-valued and multi-valued
 attributes. The nrrMinimum must be less than the nrrMaximum. An example usage
 might be:
 <p/>
 <pre>
 NumericRangeRuleData
 ruleName         rangeCheckY
 ruleTitle        Attribute Y in range 1-10
 applyToAttribute Y
 nrrMinimum       1
 nrrMaximum       10
 description      This constraint is required because blah, blah blah.
 </pre>
 NOTE: this rule works by implicitly converting the values of the attributes
 to type Double in order to be able to do the range comparison. However,
 if you are dealing with large numeric values you may run into issues.
</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.type(ClassFormatter.java:65) -->

    <tr>
      <td class="spacer"> </td>
      <td class="label">Type</td>
      <td colspan="2">STRUCTURAL</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.derivedFrom(ClassFormatter.java:79) -->

    <tr>
      <td class="spacer"> </td>
      <td>Derived from</td>
      <td colspan="2">
      <a href="meta.html#RuleData">RuleData</a>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.namedBy(ClassFormatter.java:151) -->

    <tr>
      <td class="spacer"> </td>
      <td>Named by</td>
      <td colspan="2"> <a href="meta.html#ruleName">ruleName</a> </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendClassRuleInfo(ClassFormatter.java:222) -->

    <tr>
      <td class="spacer"> </td>
      <td>Rules</td>
<td>
<table>
<tr> <td class="attributeRule">
<a class="blackText" href="dmv.html#dmvMinimumOrMaximum"> Either nrrMinimum or nrrMaximum must be specified. </a></td> </tr>

</table>
</td>
  </table>

  <table>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Must have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#applyToAttribute">applyToAttribute</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </td>
      <td> Indicates the attribute to which an ATTRIBUTE type rule is applied.
<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttributeRuleInfo(ClassFormatter.java:268) -->

<table>
<tr> <td class="attributeRule">
<a class="blackText" href="dmv.html#dmvNRRApplyToAttribute"> The applyToAttribute attribute in a NumericRangeRuleData instance must refer to an Integer, Long, Float or Double attribute </a></td> </tr>

</table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleName">ruleName</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#RuleName">RuleName</a> </td>
      <td> The ruleName attribute is used to store a single camelCase format name for a rule.
 The name starts with a single letter and can be followed by a mix of letters and numbers. No spaces or 
 other characters are allowed.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleTitle">ruleTitle</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The title of a rule.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">May have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#applyToClass">applyToClass</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#ClassDefinition">ClassDefinition</a> </td>
      <td> The class to which a rule should be applied.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#description">description</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The description attribute is used to provide descriptive
 documentation for schema related definitions. The text provided should conform
 to XHTML concepts since it will be dumped in the context of the generated HTML
 documentation.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#immediateHalt">immediateHalt</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Boolean">Boolean</a> </td>
      <td> The immediateHalt flag is used to indicate that no further
 rule processing should occur if a rule fails. It is an optional attribute on rule instance
 objects. In somes cases, there is no point in continuing with the application of a set 
 of rules, so this flag gives the option of halting further processing.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgKey">msgKey</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgKey may be specified on rule instances to indicate the key to be used
 to look up translated messages. This is primarily a GWT mechanism, but should be applicable in
 other contexts.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgParam">msgParam</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgParam allows for the specification of parameters to be substituted
 into translated messages.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#nrrMaximum">nrrMaximum</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Double">Double</a> </td>
      <td> The maximum numeric value.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#nrrMinimum">nrrMinimum</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Double">Double</a> </td>
      <td> The minimum numeric value.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Internal use attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#definedIn">definedIn</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#SchemaDefinition">SchemaDefinition</a> </td>
      <td> Indicates the schema in which a type, attribute or class is defined.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#file">file</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> Indicates the file from which a definition was loaded.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#lineNumber">lineNumber</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Integer">Integer</a> </td>
      <td> Indicates the line number of the file from which a definition was loaded.
      </td>
    </tr>

  </table>

<!-- org.dmd.dms.doc.web.ClassFormatter.dumpDetails(ClassFormatter.java:23) -->

  <table>

    <tr> <td class="className" colspan="4"> <a name="OneOfTheseAttributesRequiredRuleData"> OneOfTheseAttributesRequiredRuleData </a> </td></tr>
<!-- org.dmd.dms.doc.web.ClassFormatter.description(ClassFormatter.java:54) -->

    <tr>
      <td class="spacer"> </td>
      <td>Description</td>
      <td colspan="2">The OneOfTheseAttributesRequiredRule allows you to specify
 that one of the possible optional attributes specified must be present
 in the object being checked.
 <p/>
 If only one of the possibilities is allowed, you can specify the andOnlyOne
 flag and set it to true. In this case only one of the possibilities will be allowed.
 <p/>
 An example of this rule can be seen below.
 <pre>
 OneOfTheseAttributesRequiredRuleData
 ruleName			dmvIncludeOrExclude
 ruleTitle			At least one of the excludeThisAttribute or includeThisAttribute attributes must be specified.
 applyToClass		CheckAttributesBasedOnValueRuleData
 onePossibility		excludeThisAttribute
 onePossibility		includeThisAttribute
 </pre>
</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.type(ClassFormatter.java:65) -->

    <tr>
      <td class="spacer"> </td>
      <td class="label">Type</td>
      <td colspan="2">STRUCTURAL</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.derivedFrom(ClassFormatter.java:79) -->

    <tr>
      <td class="spacer"> </td>
      <td>Derived from</td>
      <td colspan="2">
      <a href="meta.html#RuleData">RuleData</a>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.namedBy(ClassFormatter.java:151) -->

    <tr>
      <td class="spacer"> </td>
      <td>Named by</td>
      <td colspan="2"> <a href="meta.html#ruleName">ruleName</a> </td>
    </tr>

  </table>

  <table>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Must have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#onePossibility">onePossibility</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </td>
      <td> The onePossibility attribute indicates an attribute that is one possiblity among
 many.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleName">ruleName</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#RuleName">RuleName</a> </td>
      <td> The ruleName attribute is used to store a single camelCase format name for a rule.
 The name starts with a single letter and can be followed by a mix of letters and numbers. No spaces or 
 other characters are allowed.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleTitle">ruleTitle</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The title of a rule.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">May have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#andOnlyOne">andOnlyOne</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Boolean">Boolean</a> </td>
      <td> The andOnlyOne attribute indicates that only one of a set of possibilities is
 allowed.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#applyToClass">applyToClass</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#ClassDefinition">ClassDefinition</a> </td>
      <td> The class to which a rule should be applied.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#description">description</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The description attribute is used to provide descriptive
 documentation for schema related definitions. The text provided should conform
 to XHTML concepts since it will be dumped in the context of the generated HTML
 documentation.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#immediateHalt">immediateHalt</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Boolean">Boolean</a> </td>
      <td> The immediateHalt flag is used to indicate that no further
 rule processing should occur if a rule fails. It is an optional attribute on rule instance
 objects. In somes cases, there is no point in continuing with the application of a set 
 of rules, so this flag gives the option of halting further processing.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgKey">msgKey</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgKey may be specified on rule instances to indicate the key to be used
 to look up translated messages. This is primarily a GWT mechanism, but should be applicable in
 other contexts.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgParam">msgParam</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgParam allows for the specification of parameters to be substituted
 into translated messages.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Internal use attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#definedIn">definedIn</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#SchemaDefinition">SchemaDefinition</a> </td>
      <td> Indicates the schema in which a type, attribute or class is defined.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#file">file</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> Indicates the file from which a definition was loaded.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#lineNumber">lineNumber</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Integer">Integer</a> </td>
      <td> Indicates the line number of the file from which a definition was loaded.
      </td>
    </tr>

  </table>

<!-- org.dmd.dms.doc.web.ClassFormatter.dumpDetails(ClassFormatter.java:23) -->

  <table>

    <tr> <td class="className" colspan="4"> <a name="PatternMatchRuleData"> PatternMatchRuleData </a> </td></tr>
<!-- org.dmd.dms.doc.web.ClassFormatter.description(ClassFormatter.java:54) -->

    <tr>
      <td class="spacer"> </td>
      <td>Description</td>
      <td colspan="2">The PatternMatchRule allows you to validate that an attribute
 in an object conforms to a regex pattern that you specify. If the pattern match
 fails, the ruleTitle is used as the error message, so use a clear rule title to
 indicate the intent of the pattern match. For instance the following rule is 
 applied to the names of EnumDefinitions:
 <pre>
 PatternMatchRuleData
 ruleName          dmvEnumDefinitionNameCheck
 ruleTitle         An EnumDefinition's name must end with Enum
 matchesPattern    ^.*Enum
 applyToAttribute  name
 applyToClass      EnumDefinition
 </pre>
</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.type(ClassFormatter.java:65) -->

    <tr>
      <td class="spacer"> </td>
      <td class="label">Type</td>
      <td colspan="2">STRUCTURAL</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.derivedFrom(ClassFormatter.java:79) -->

    <tr>
      <td class="spacer"> </td>
      <td>Derived from</td>
      <td colspan="2">
      <a href="meta.html#RuleData">RuleData</a>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.namedBy(ClassFormatter.java:151) -->

    <tr>
      <td class="spacer"> </td>
      <td>Named by</td>
      <td colspan="2"> <a href="meta.html#ruleName">ruleName</a> </td>
    </tr>

  </table>

  <table>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Must have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#applyToAttribute">applyToAttribute</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </td>
      <td> Indicates the attribute to which an ATTRIBUTE type rule is applied.
<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttributeRuleInfo(ClassFormatter.java:268) -->

<table>
</table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#matchesPattern">matchesPattern</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The matchesPattern attribute indicates a regular expression that conforms
 to the
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleName">ruleName</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#RuleName">RuleName</a> </td>
      <td> The ruleName attribute is used to store a single camelCase format name for a rule.
 The name starts with a single letter and can be followed by a mix of letters and numbers. No spaces or 
 other characters are allowed.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleTitle">ruleTitle</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The title of a rule.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">May have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#applyToClass">applyToClass</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#ClassDefinition">ClassDefinition</a> </td>
      <td> The class to which a rule should be applied.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#description">description</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The description attribute is used to provide descriptive
 documentation for schema related definitions. The text provided should conform
 to XHTML concepts since it will be dumped in the context of the generated HTML
 documentation.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#immediateHalt">immediateHalt</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Boolean">Boolean</a> </td>
      <td> The immediateHalt flag is used to indicate that no further
 rule processing should occur if a rule fails. It is an optional attribute on rule instance
 objects. In somes cases, there is no point in continuing with the application of a set 
 of rules, so this flag gives the option of halting further processing.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgKey">msgKey</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgKey may be specified on rule instances to indicate the key to be used
 to look up translated messages. This is primarily a GWT mechanism, but should be applicable in
 other contexts.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgParam">msgParam</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgParam allows for the specification of parameters to be substituted
 into translated messages.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Internal use attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#definedIn">definedIn</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#SchemaDefinition">SchemaDefinition</a> </td>
      <td> Indicates the schema in which a type, attribute or class is defined.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#file">file</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> Indicates the file from which a definition was loaded.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#lineNumber">lineNumber</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Integer">Integer</a> </td>
      <td> Indicates the line number of the file from which a definition was loaded.
      </td>
    </tr>

  </table>

<!-- org.dmd.dms.doc.web.ClassFormatter.dumpDetails(ClassFormatter.java:23) -->

  <table>

    <tr> <td class="className" colspan="4"> <a name="ReferencedAttributeTypeRuleData"> ReferencedAttributeTypeRuleData </a> </td></tr>
<!-- org.dmd.dms.doc.web.ClassFormatter.description(ClassFormatter.java:54) -->

    <tr>
      <td class="spacer"> </td>
      <td>Description</td>
      <td colspan="2">The ReferencedAttributeTypeRule allowes you to restrict the type of
 an attribute referred to by an AttributeDefinition reference. Some examples include:
 <pre>
 ReferencedAttributeTypeRuleData
 ruleName          dmvNRRApplyToAttribute
 ruleTitle         The applyToAttribute attribute in a NumericRangeRuleData instance must refer to an Integer, Long, Float or Double attribute
 applyToAttribute  applyToAttribute
 applyToClass      NumericRangeRuleData
 allowedType       Integer
 allowedType       Long
 allowedType       Float
 allowedType       Double
 </pre>
 In this case, we're restricting the applyToAttribute to be a numeric type, either Integer, Long Float or Double.
 <p/>
 You can also restrict the valueType of an attribute reference, for instance:
 <pre>
 ReferencedAttributeTypeRuleData
 ruleName          dmvLhs
 ruleTitle         The lhs attribute must be a single valued Integer, Long, Float or Double
 applyToAttribute  lhs
 applyToClass      RelatedNumbersRuleData
 allowedType       Integer
 allowedType       Long
 allowedType       Float
 allowedType       Double
 allowedValueType  SINGLE
 </pre>
 Here, we're indicating that the lhs (left hand side) attribute must be single valued.
</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.type(ClassFormatter.java:65) -->

    <tr>
      <td class="spacer"> </td>
      <td class="label">Type</td>
      <td colspan="2">STRUCTURAL</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.derivedFrom(ClassFormatter.java:79) -->

    <tr>
      <td class="spacer"> </td>
      <td>Derived from</td>
      <td colspan="2">
      <a href="meta.html#RuleData">RuleData</a>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.namedBy(ClassFormatter.java:151) -->

    <tr>
      <td class="spacer"> </td>
      <td>Named by</td>
      <td colspan="2"> <a href="meta.html#ruleName">ruleName</a> </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendClassRuleInfo(ClassFormatter.java:222) -->

    <tr>
      <td class="spacer"> </td>
      <td>Rules</td>
<td>
<table>
<tr> <td class="attributeRule">
<a class="blackText" href="dmv.html#dmvValueorAttribute"> Either allowedType or allowedValueType must be specified </a></td> </tr>

</table>
</td>
  </table>

  <table>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Must have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#applyToAttribute">applyToAttribute</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </td>
      <td> Indicates the attribute to which an ATTRIBUTE type rule is applied.
<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttributeRuleInfo(ClassFormatter.java:268) -->

<table>
<tr> <td class="attributeRule">
<a class="blackText" href="dmv.html#dmvRATRApplyToAttribute"> The applyToAttribute attribute in a ReferencedAttributeTypeRuleData must refer to a single valued AttributeDefinition </a></td> </tr>

</table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleName">ruleName</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#RuleName">RuleName</a> </td>
      <td> The ruleName attribute is used to store a single camelCase format name for a rule.
 The name starts with a single letter and can be followed by a mix of letters and numbers. No spaces or 
 other characters are allowed.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleTitle">ruleTitle</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The title of a rule.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">May have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#allowedType">allowedType</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#TypeDefinition">TypeDefinition</a> </td>
      <td> The allowedType indicates a collection of defined types to which something,
 usually and attribute, must conform.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#allowedValueType">allowedValueType</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#ValueTypeEnum">ValueTypeEnum</a> </td>
      <td> The allowedValueType indicates the allowed cardinality of an attribute.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#applyToClass">applyToClass</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#ClassDefinition">ClassDefinition</a> </td>
      <td> The class to which a rule should be applied.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#description">description</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The description attribute is used to provide descriptive
 documentation for schema related definitions. The text provided should conform
 to XHTML concepts since it will be dumped in the context of the generated HTML
 documentation.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#immediateHalt">immediateHalt</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Boolean">Boolean</a> </td>
      <td> The immediateHalt flag is used to indicate that no further
 rule processing should occur if a rule fails. It is an optional attribute on rule instance
 objects. In somes cases, there is no point in continuing with the application of a set 
 of rules, so this flag gives the option of halting further processing.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgKey">msgKey</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgKey may be specified on rule instances to indicate the key to be used
 to look up translated messages. This is primarily a GWT mechanism, but should be applicable in
 other contexts.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgParam">msgParam</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgParam allows for the specification of parameters to be substituted
 into translated messages.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Internal use attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#definedIn">definedIn</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#SchemaDefinition">SchemaDefinition</a> </td>
      <td> Indicates the schema in which a type, attribute or class is defined.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#file">file</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> Indicates the file from which a definition was loaded.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#lineNumber">lineNumber</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Integer">Integer</a> </td>
      <td> Indicates the line number of the file from which a definition was loaded.
      </td>
    </tr>

  </table>

<!-- org.dmd.dms.doc.web.ClassFormatter.dumpDetails(ClassFormatter.java:23) -->

  <table>

    <tr> <td class="className" colspan="4"> <a name="RelatedNumbersRuleData"> RelatedNumbersRuleData </a> </td></tr>
<!-- org.dmd.dms.doc.web.ClassFormatter.description(ClassFormatter.java:54) -->

    <tr>
      <td class="spacer"> </td>
      <td>Description</td>
      <td colspan="2">The RelatedNumbersRule ensures that a particular numeric
 relationship exists between two single-valued, numeric values on an object.
 An example usage might be:
 <pre>
 RelatedNumbersRuleData
 ruleName        dmvHeightGirth
 ruleTitle       Your height must exceed your girth.
 applyToClass    Person
 lhs             height
 rhs             girth
 numericRelation GT
 description     If your girth exceeds your height, you're in trouble!
 </pre>
 The rule will only test the relationship if both attributes exist; if not,
 that's okay - the rule will pass.
 <p/>
 It's a good rule of thumb to indicate the relationship you expect in the
 title of the rule since this is what will be returned in the case that 
 the relationship check fails.
 <p/>
 NOTE: this rule works by implicitly converting the values of the attributes
 to type Double in order to be able to compare apples to apples. However,
 if you are dealing with large numeric values you may run into issues.
</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.type(ClassFormatter.java:65) -->

    <tr>
      <td class="spacer"> </td>
      <td class="label">Type</td>
      <td colspan="2">STRUCTURAL</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.derivedFrom(ClassFormatter.java:79) -->

    <tr>
      <td class="spacer"> </td>
      <td>Derived from</td>
      <td colspan="2">
      <a href="meta.html#RuleData">RuleData</a>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.namedBy(ClassFormatter.java:151) -->

    <tr>
      <td class="spacer"> </td>
      <td>Named by</td>
      <td colspan="2"> <a href="meta.html#ruleName">ruleName</a> </td>
    </tr>

  </table>

  <table>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Must have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#lhs">lhs</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </td>
      <td> The attribute to be used as the left hand side of some relationship. The
 type of the attribute referred to may differ from one rule to the next depending on
 the relationship being tested.
<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttributeRuleInfo(ClassFormatter.java:268) -->

<table>
<tr> <td class="attributeRule">
<a class="blackText" href="dmv.html#dmvLhs"> The lhs attribute must be a single valued Integer, Long, Float or Double </a></td> </tr>

</table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#numericRelation">numericRelation</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="dmv.html#NumericRelationEnum">NumericRelationEnum</a> </td>
      <td> The relationship between numeric values.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#rhs">rhs</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </td>
      <td> The attribute to be used as the right hand side of some relationship. The
 type of the attribute referred to may differ from one rule to the next depending on
 the relationship being tested.
<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttributeRuleInfo(ClassFormatter.java:268) -->

<table>
<tr> <td class="attributeRule">
<a class="blackText" href="dmv.html#dmvRhs"> The rhs attribute must be a single valued Integer, Long, Float or Double </a></td> </tr>

</table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleName">ruleName</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#RuleName">RuleName</a> </td>
      <td> The ruleName attribute is used to store a single camelCase format name for a rule.
 The name starts with a single letter and can be followed by a mix of letters and numbers. No spaces or 
 other characters are allowed.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleTitle">ruleTitle</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The title of a rule.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">May have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#applyToClass">applyToClass</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#ClassDefinition">ClassDefinition</a> </td>
      <td> The class to which a rule should be applied.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#description">description</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The description attribute is used to provide descriptive
 documentation for schema related definitions. The text provided should conform
 to XHTML concepts since it will be dumped in the context of the generated HTML
 documentation.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#immediateHalt">immediateHalt</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Boolean">Boolean</a> </td>
      <td> The immediateHalt flag is used to indicate that no further
 rule processing should occur if a rule fails. It is an optional attribute on rule instance
 objects. In somes cases, there is no point in continuing with the application of a set 
 of rules, so this flag gives the option of halting further processing.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgKey">msgKey</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgKey may be specified on rule instances to indicate the key to be used
 to look up translated messages. This is primarily a GWT mechanism, but should be applicable in
 other contexts.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgParam">msgParam</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgParam allows for the specification of parameters to be substituted
 into translated messages.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Internal use attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#definedIn">definedIn</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#SchemaDefinition">SchemaDefinition</a> </td>
      <td> Indicates the schema in which a type, attribute or class is defined.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#file">file</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> Indicates the file from which a definition was loaded.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#lineNumber">lineNumber</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Integer">Integer</a> </td>
      <td> Indicates the line number of the file from which a definition was loaded.
      </td>
    </tr>

  </table>

<!-- org.dmd.dms.doc.web.ClassFormatter.dumpDetails(ClassFormatter.java:23) -->

  <table>

    <tr> <td class="className" colspan="4"> <a name="UCOAllowedAttributesRuleData"> UCOAllowedAttributesRuleData </a> </td></tr>
<!-- org.dmd.dms.doc.web.ClassFormatter.description(ClassFormatter.java:54) -->

    <tr>
      <td class="spacer"> </td>
      <td>Description</td>
      <td colspan="2">The UCOAllowedAttributesRule will determine whether or not the 
 attributes of a DmcUncheckedObject conform to the must/may specification of its
 class definition. For classes of type EXTENSIBLE only the must have attributes are checked.
</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.type(ClassFormatter.java:65) -->

    <tr>
      <td class="spacer"> </td>
      <td class="label">Type</td>
      <td colspan="2">STRUCTURAL</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.derivedFrom(ClassFormatter.java:79) -->

    <tr>
      <td class="spacer"> </td>
      <td>Derived from</td>
      <td colspan="2">
      <a href="meta.html#RuleData">RuleData</a>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.namedBy(ClassFormatter.java:151) -->

    <tr>
      <td class="spacer"> </td>
      <td>Named by</td>
      <td colspan="2"> <a href="meta.html#ruleName">ruleName</a> </td>
    </tr>

  </table>

  <table>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Must have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleName">ruleName</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#RuleName">RuleName</a> </td>
      <td> The ruleName attribute is used to store a single camelCase format name for a rule.
 The name starts with a single letter and can be followed by a mix of letters and numbers. No spaces or 
 other characters are allowed.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleTitle">ruleTitle</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The title of a rule.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">May have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#applyToClass">applyToClass</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#ClassDefinition">ClassDefinition</a> </td>
      <td> The class to which a rule should be applied.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#description">description</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The description attribute is used to provide descriptive
 documentation for schema related definitions. The text provided should conform
 to XHTML concepts since it will be dumped in the context of the generated HTML
 documentation.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#immediateHalt">immediateHalt</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Boolean">Boolean</a> </td>
      <td> The immediateHalt flag is used to indicate that no further
 rule processing should occur if a rule fails. It is an optional attribute on rule instance
 objects. In somes cases, there is no point in continuing with the application of a set 
 of rules, so this flag gives the option of halting further processing.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgKey">msgKey</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgKey may be specified on rule instances to indicate the key to be used
 to look up translated messages. This is primarily a GWT mechanism, but should be applicable in
 other contexts.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgParam">msgParam</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgParam allows for the specification of parameters to be substituted
 into translated messages.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Internal use attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#definedIn">definedIn</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#SchemaDefinition">SchemaDefinition</a> </td>
      <td> Indicates the schema in which a type, attribute or class is defined.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#file">file</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> Indicates the file from which a definition was loaded.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#lineNumber">lineNumber</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Integer">Integer</a> </td>
      <td> Indicates the line number of the file from which a definition was loaded.
      </td>
    </tr>

  </table>

<!-- org.dmd.dms.doc.web.ClassFormatter.dumpDetails(ClassFormatter.java:23) -->

  <table>

    <tr> <td class="className" colspan="4"> <a name="ValueLengthRuleData"> ValueLengthRuleData </a> </td></tr>
<!-- org.dmd.dms.doc.web.ClassFormatter.description(ClassFormatter.java:54) -->

    <tr>
      <td class="spacer"> </td>
      <td>Description</td>
      <td colspan="2">The ValueLengthRule allows you to indicate the maximum length,
 the minimum length or both the maximum and minimum length of the String form of
 a value associated with an attribute. It works for both single valued and
 multi-valued attributes.
 <p/>
 If you have added types via the TypeDefinition mechanisms,
 you should ensure that you have overloaded the toString() method 
 <pre>
 ValueLengthRuleData
 ruleName         userNameLength
 ruleTitle        The user name must be between 6 and 20 characters
 applyToAttribute userNameString
 minLength        6
 maxLength        20
 </pre>
 Or, just a minimum length:
 <pre>
 ValueLengthRuleData
 ruleName         tagLength
 ruleTitle        Tag information must be 4 characters or more.
 applyToAttribute dataTag
 applyToClass     chunkOfData
 minLength        4
 </pre>
 Or, just a maximum length:
 <pre>
 ValueLengthRuleData
 ruleName         infoLength
 ruleTitle        The info must be less than or equal to 50 characters.
 applyToAttribute info
 applyToClass     chunkOfData
 maxLength        50
 </pre>
 NOTE: If you have added types via the TypeDefinition mechanisms, you should ensure
 that you have overloaded the toString() method of the primitiveType that
 you're using.
</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.type(ClassFormatter.java:65) -->

    <tr>
      <td class="spacer"> </td>
      <td class="label">Type</td>
      <td colspan="2">STRUCTURAL</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.derivedFrom(ClassFormatter.java:79) -->

    <tr>
      <td class="spacer"> </td>
      <td>Derived from</td>
      <td colspan="2">
      <a href="meta.html#RuleData">RuleData</a>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.namedBy(ClassFormatter.java:151) -->

    <tr>
      <td class="spacer"> </td>
      <td>Named by</td>
      <td colspan="2"> <a href="meta.html#ruleName">ruleName</a> </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendClassRuleInfo(ClassFormatter.java:222) -->

    <tr>
      <td class="spacer"> </td>
      <td>Rules</td>
<td>
<table>
<tr> <td class="attributeRule">
<a class="blackText" href="dmv.html#dmvMaxOrMin"> At least one of the maxLength or minLength attributes must be specified. </a></td> </tr>

<tr> <td class="attributeRule">
<a class="blackText" href="dmv.html#dmvMinLessThanMax"> The minLength must be less than the maxLength. </a></td> </tr>

</table>
</td>
  </table>

  <table>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Must have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#applyToAttribute">applyToAttribute</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </td>
      <td> Indicates the attribute to which an ATTRIBUTE type rule is applied.
<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttributeRuleInfo(ClassFormatter.java:268) -->

<table>
</table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleName">ruleName</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#RuleName">RuleName</a> </td>
      <td> The ruleName attribute is used to store a single camelCase format name for a rule.
 The name starts with a single letter and can be followed by a mix of letters and numbers. No spaces or 
 other characters are allowed.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#ruleTitle">ruleTitle</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The title of a rule.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">May have attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#applyToClass">applyToClass</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#ClassDefinition">ClassDefinition</a> </td>
      <td> The class to which a rule should be applied.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#description">description</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The description attribute is used to provide descriptive
 documentation for schema related definitions. The text provided should conform
 to XHTML concepts since it will be dumped in the context of the generated HTML
 documentation.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#immediateHalt">immediateHalt</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Boolean">Boolean</a> </td>
      <td> The immediateHalt flag is used to indicate that no further
 rule processing should occur if a rule fails. It is an optional attribute on rule instance
 objects. In somes cases, there is no point in continuing with the application of a set 
 of rules, so this flag gives the option of halting further processing.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#maxLength">maxLength</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Integer">Integer</a> </td>
      <td> The maxLength attribute indicates the maximum length of something.
<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttributeRuleInfo(ClassFormatter.java:268) -->

<table>
<tr> <td class="attributeRule">
<a class="blackText" href="dmv.html#dmvMaximumLength"> The maxLength must be 1 or more </a></td> </tr>

</table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="dmv.html#minLength">minLength</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Integer">Integer</a> </td>
      <td> The minLength attribute indicates the minimum length of something.
<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttributeRuleInfo(ClassFormatter.java:268) -->

<table>
<tr> <td class="attributeRule">
<a class="blackText" href="dmv.html#dmvMinimumLength"> The minLength must be 1 or more </a></td> </tr>

</table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgKey">msgKey</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgKey may be specified on rule instances to indicate the key to be used
 to look up translated messages. This is primarily a GWT mechanism, but should be applicable in
 other contexts.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#msgParam">msgParam</a> </td>
      <td class="valueType"> P MV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> The msgParam allows for the specification of parameters to be substituted
 into translated messages.
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel">Internal use attributes</td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#definedIn">definedIn</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#SchemaDefinition">SchemaDefinition</a> </td>
      <td> Indicates the schema in which a type, attribute or class is defined.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#file">file</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#String">String</a> </td>
      <td> Indicates the file from which a definition was loaded.
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.ClassFormatter.appendAttribute(ClassFormatter.java:200) -->

    <tr>
      <td class="spacer"> </td>
      <td> <a href="meta.html#lineNumber">lineNumber</a> </td>
      <td class="valueType"> P SV </td>      <td> <a href="meta.html#Integer">Integer</a> </td>
      <td> Indicates the line number of the file from which a definition was loaded.
      </td>
    </tr>

  </table>

</div> <!-- classDetails -->

<!-- org.dmd.dms.doc.web.SchemaPage.writeAttributes(SchemaPage.java:223) -->

<div class="attributeDetails">

<h2> Attribute Details </h2>

  <table>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="allowedType"> allowedType </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P MV </div> <div class="attrType"> <a href="meta.html#TypeDefinition">TypeDefinition</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The allowedType indicates a collection of defined types to which something,\n usually and attribute, must conform.
<p/>
Either allowedType or allowedValueType must be specified
<p/>      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> ReferencedAttributeTypeRuleData (<a href="dmv.html#ReferencedAttributeTypeRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="allowedValueType"> allowedValueType </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P SV </div> <div class="attrType"> <a href="meta.html#ValueTypeEnum">ValueTypeEnum</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The allowedValueType indicates the allowed cardinality of an attribute.
<p/>
Either allowedType or allowedValueType must be specified
<p/>      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> ReferencedAttributeTypeRuleData (<a href="dmv.html#ReferencedAttributeTypeRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="andOnlyOne"> andOnlyOne </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P SV </div> <div class="attrType"> <a href="meta.html#Boolean">Boolean</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The andOnlyOne attribute indicates that only one of a set of possibilities is\n allowed.
<p/>
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> OneOfTheseAttributesRequiredRuleData (<a href="dmv.html#OneOfTheseAttributesRequiredRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="basedOnAttribute"> basedOnAttribute </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P SV </div> <div class="attrType"> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The basedOnAttribute allows for the specification of an attribute on which\n some type of a decision is made.
<p/>
The basedOnAttribute attribute must refer to a single-valued attribute
<p/>      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> CheckAttributesBasedOnValueRuleData (<a href="dmv.html#CheckAttributesBasedOnValueRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="basedOnValue"> basedOnValue </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P HS </div> <div class="attrType"> <a href="meta.html#String">String</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The basedOnValue attribute allows for the specification of values for some\n aspect of a rule.
<p/>
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> CheckAttributesBasedOnValueRuleData (<a href="dmv.html#CheckAttributesBasedOnValueRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="excludeThisAttribute"> excludeThisAttribute </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P MV </div> <div class="attrType"> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The excludeThisAttribute indicates an optional attribute that must be\n excluded from an object under certain conditions.
<p/>
At least one of the excludeThisAttribute or includeThisAttribute attributes must be specified.
<p/>      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> CheckAttributesBasedOnValueRuleData (<a href="dmv.html#CheckAttributesBasedOnValueRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="includeThisAttribute"> includeThisAttribute </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P MV </div> <div class="attrType"> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The includeThisAttribute indicates an optional attribute that must be\n present under certain conditions.
<p/>
At least one of the excludeThisAttribute or includeThisAttribute attributes must be specified.
<p/>      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> CheckAttributesBasedOnValueRuleData (<a href="dmv.html#CheckAttributesBasedOnValueRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="lhs"> lhs </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P SV </div> <div class="attrType"> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The attribute to be used as the left hand side of some relationship. The\n type of the attribute referred to may differ from one rule to the next depending on\n the relationship being tested.
<p/>
The lhs attribute must be a single valued Integer, Long, Float or Double
<p/>      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> RelatedNumbersRuleData (<a href="dmv.html#RelatedNumbersRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="matchesPattern"> matchesPattern </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P SV </div> <div class="attrType"> <a href="meta.html#String">String</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The matchesPattern attribute indicates a regular expression that conforms\n to the
<p/>
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> PatternMatchRuleData (<a href="dmv.html#PatternMatchRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="maxLength"> maxLength </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P SV </div> <div class="attrType"> <a href="meta.html#Integer">Integer</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The maxLength attribute indicates the maximum length of something.
<p/>
At least one of the maxLength or minLength attributes must be specified.
<p/>The maxLength must be 1 or more
<p/>The minLength must be less than the maxLength.
<p/>      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> ValueLengthRuleData (<a href="dmv.html#ValueLengthRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="minLength"> minLength </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P SV </div> <div class="attrType"> <a href="meta.html#Integer">Integer</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The minLength attribute indicates the minimum length of something.
<p/>
At least one of the maxLength or minLength attributes must be specified.
<p/>The minLength must be less than the maxLength.
<p/>The minLength must be 1 or more
<p/>      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> ValueLengthRuleData (<a href="dmv.html#ValueLengthRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="nrrMaximum"> nrrMaximum </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P SV </div> <div class="attrType"> <a href="meta.html#Double">Double</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The maximum numeric value.
<p/>
Either nrrMinimum or nrrMaximum must be specified.
<p/>      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> NumericRangeRuleData (<a href="dmv.html#NumericRangeRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="nrrMinimum"> nrrMinimum </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P SV </div> <div class="attrType"> <a href="meta.html#Double">Double</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The minimum numeric value.
<p/>
Either nrrMinimum or nrrMaximum must be specified.
<p/>      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> NumericRangeRuleData (<a href="dmv.html#NumericRangeRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="numericRelation"> numericRelation </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P SV </div> <div class="attrType"> <a href="dmv.html#NumericRelationEnum">NumericRelationEnum</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The relationship between numeric values.
<p/>
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> RelatedNumbersRuleData (<a href="dmv.html#RelatedNumbersRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="onePossibility"> onePossibility </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P MV </div> <div class="attrType"> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The onePossibility attribute indicates an attribute that is one possiblity among\n many.
<p/>
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> OneOfTheseAttributesRequiredRuleData (<a href="dmv.html#OneOfTheseAttributesRequiredRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

<!-- org.dmd.dms.doc.web.AttributeFormatter.dumpDetails(AttributeFormatter.java:22) -->
    <tr> <td class="className" colspan="3"> <a name="rhs"> rhs </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="2"> <div class="valueType"> P SV </div> <div class="attrType"> <a href="meta.html#AttributeDefinition">AttributeDefinition</a> </div> 
      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Description</td>
      <td>
The attribute to be used as the right hand side of some relationship. The\n type of the attribute referred to may differ from one rule to the next depending on\n the relationship being tested.
<p/>
The rhs attribute must be a single valued Integer, Long, Float or Double
<p/>      </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="label">Used in:</td>
      <td>
        <table>
        <tr>
          <td> RelatedNumbersRuleData (<a href="dmv.html#RelatedNumbersRuleData">dmv</a>) </td>
        </tr>
        </table>
      </td>
    </tr>

  </table>

</div> <!-- attributeDetails -->

<!-- org.dmd.dms.doc.web.SchemaPage.writeEnums(SchemaPage.java:303) -->

<div class="enumDetails">

<h2> Enum Details </h2>

  <table>

<!-- org.dmd.dms.doc.web.EnumFormatter.dumpDetails(EnumFormatter.java:14) -->

    <tr> <td class="className" colspan="4"> <a name="NumericRelationEnum"> NumericRelationEnum </a> </td></tr>
    <tr>
      <td class="spacer"> </td>
      <td class="label" colspan="2">Description</td>
      <td>java.util.AbstractList$Itr@4b2dd538</td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td> 0</td>
      <td> EQUALS</td>
      <td>Equals</td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td> 1</td>
      <td> GT</td>
      <td>Greater than</td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td> 2</td>
      <td> LT</td>
      <td>Less than</td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td> 3</td>
      <td> NE</td>
      <td>Not equal</td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td> 4</td>
      <td> GTE</td>
      <td>Greater than or equal to</td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td> 5</td>
      <td> LTE</td>
      <td>Less than or equal to</td>
    </tr>

  </table>

</div> <!-- enumDetails -->

<!-- org.dmd.dms.doc.web.RuleInstanceFormatter.dumpRuleInstanceDetails(RuleInstanceFormatter.java:50) -->
<div class="ruleInstances">

<h2> Rule Instances </h2>

<!-- org.dmd.dms.doc.web.RuleInstanceFormatter.dumpRuleInstanceDetails(RuleInstanceFormatter.java:56) -->
  <table>

<!-- org.dmd.dms.doc.web.RuleInstanceFormatter.dumpRuleInstances(RuleInstanceFormatter.java:97) -->
    <tr> <td class="ruleDefName" colspan="4"> AllowedAttributesRule (CLASS)</td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvAllowedAttributes">
        An object's attributes must conform to its schema.
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Description: </td>
      <td> Ensures that must/may attribute rules are followed. For classes of
 type EXTENSIBLE, only the must have attributes are checked.
 </td>
    </tr>
<!-- org.dmd.dms.doc.web.RuleInstanceFormatter.dumpRuleInstances(RuleInstanceFormatter.java:97) -->
    <tr> <td class="ruleDefName" colspan="4"> CheckAttributesBasedOnValueRule (CLASS)</td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvNoMustInExtensible">
        If a ClassDefinition's classType is AUXILIARY, it can't have mandatory attributes
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> meta.ClassDefinition </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Description: </td>
      <td> An AUXILIARY class can be added to an object dynamically and
 we don't allow mandatory attributes in such classes.
 </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> basedOnValue </td>
      <td>
AUXILIARY
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> excludeThisAttribute </td>
      <td>
meta.must
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> basedOnAttribute </td>
      <td> meta.classType</td>    </tr>
<!-- org.dmd.dms.doc.web.RuleInstanceFormatter.dumpRuleInstances(RuleInstanceFormatter.java:97) -->
    <tr> <td class="ruleDefName" colspan="4"> NumericRangeRule (ATTRIBUTE)</td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvMaximumLength">
        The maxLength must be 1 or more
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to attribute: </td>
      <td> dmv.maxLength </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> nrrMinimum </td>
      <td> 1.0</td>    </tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvMinimumLength">
        The minLength must be 1 or more
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> dmv.ValueLengthRuleData </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to attribute: </td>
      <td> dmv.minLength </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> nrrMinimum </td>
      <td> 1.0</td>    </tr>
<!-- org.dmd.dms.doc.web.RuleInstanceFormatter.dumpRuleInstances(RuleInstanceFormatter.java:97) -->
    <tr> <td class="ruleDefName" colspan="4"> OneOfTheseAttributesRequiredRule (CLASS)</td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvIncludeOrExclude">
        At least one of the excludeThisAttribute or includeThisAttribute attributes must be specified.
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> dmv.CheckAttributesBasedOnValueRuleData </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> onePossibility </td>
      <td>
dmv.excludeThisAttribute
<br>dmv.includeThisAttribute
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvMaxOrMin">
        At least one of the maxLength or minLength attributes must be specified.
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> dmv.ValueLengthRuleData </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> onePossibility </td>
      <td>
dmv.maxLength
<br>dmv.minLength
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvMinimumOrMaximum">
        Either nrrMinimum or nrrMaximum must be specified.
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> dmv.NumericRangeRuleData </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Description: </td>
      <td> The NumericRangeRule can operate with one or both of the minimum
 and maximum values.
 </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> onePossibility </td>
      <td>
dmv.nrrMinimum
<br>dmv.nrrMaximum
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvValueorAttribute">
        Either allowedType or allowedValueType must be specified
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> dmv.ReferencedAttributeTypeRuleData </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> onePossibility </td>
      <td>
dmv.allowedType
<br>dmv.allowedValueType
      </td>
    </tr>
<!-- org.dmd.dms.doc.web.RuleInstanceFormatter.dumpRuleInstances(RuleInstanceFormatter.java:97) -->
    <tr> <td class="ruleDefName" colspan="4"> PatternMatchRule (ATTRIBUTE)</td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvDefinitionNameCheck">
        The name attribute must start with a letter, followed by a mix of letters and numbers.
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to attribute: </td>
      <td> meta.name </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Description: </td>
      <td> Although the name attribute is defined as type DotName, when
 the value is used as the value for the name attribute, it must not contain the 
 dot character. This is because we allow for references to definitions to be
 either the flat name of the definition, or its fully qualified name that includes
 the definition set name, for example, meta.must - which indicates the must attribute
 from the meta schema.
 <p/>
 This allows for the convention of referring to definitions in the most general
 way possible without having to fully qualify every reference.
 </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> matchesPattern </td>
      <td> [a-zA-Z][a-zA-Z0-9_]*</td>    </tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvEnumDefinitionNameCheck">
        An EnumDefinition's name must end with Enum
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> meta.EnumDefinition </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to attribute: </td>
      <td> meta.name </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Description: </td>
      <td> This is really just a convention, but the generation of
 autogenerated static types depends on knowing if a type is an enum so that
 the enum can be imported in the static implementation. The dumpSTATICType()
 method in GenUtility checks to see if the type ends with Enum and adds
 the appropriate import if that's the case.
 </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> matchesPattern </td>
      <td> ^.*Enum</td>    </tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvFileExtensionCheck">
        A file extension should be comprised of alpha-numeric characters.
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to attribute: </td>
      <td> meta.fileExtension </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Description: </td>
      <td> Didn't want to be too restrictive with this. Definitely didn't want special characters.
 </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> matchesPattern </td>
      <td> [a-zA-Z][a-zA-Z0-9]*</td>    </tr>
<!-- org.dmd.dms.doc.web.RuleInstanceFormatter.dumpRuleInstances(RuleInstanceFormatter.java:97) -->
    <tr> <td class="ruleDefName" colspan="4"> ReferencedAttributeTypeRule (ATTRIBUTE)</td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvBasedOnAttribute">
        The basedOnAttribute attribute must refer to a single-valued attribute
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> dmv.CheckAttributesBasedOnValueRuleData </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to attribute: </td>
      <td> dmv.basedOnAttribute </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> allowedValueType </td>
      <td> SINGLE</td>    </tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvDefinedInModuleAttribute">
        The attribute referred to by the definedInModuleAttribute attribute must be single-valued.
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> meta.DSDefinitionModule </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to attribute: </td>
      <td> meta.definedInModuleAttribute </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Description: </td>
      <td> We have sections of generated code that will access the module
 dependence attribute of a DDM module instance and being able to assume that the
 module dependence attribute is multi-valued just makes things easier.
 </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> allowedValueType </td>
      <td> SINGLE</td>    </tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvLhs">
        The lhs attribute must be a single valued Integer, Long, Float or Double
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> dmv.RelatedNumbersRuleData </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to attribute: </td>
      <td> dmv.lhs </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> allowedValueType </td>
      <td> SINGLE</td>    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> allowedType </td>
      <td>
meta.Integer
<br>meta.Long
<br>meta.Float
<br>meta.Double
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvModuleDependenceAttribute">
        The attribute referred to by the moduleDependenceAttribute attribute must be multi-valued.
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> meta.DSDefinitionModule </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to attribute: </td>
      <td> meta.moduleDependenceAttribute </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Description: </td>
      <td> We have sections of generated code that will access the module
 dependence attribute of a DDM module instance and being able to assume that the
 module dependence attribute is multi-valued just makes things easier.
 </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> allowedValueType </td>
      <td> MULTI</td>    </tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvNRRApplyToAttribute">
        The applyToAttribute attribute in a NumericRangeRuleData instance must refer to an Integer, Long, Float or Double attribute
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> dmv.NumericRangeRuleData </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to attribute: </td>
      <td> meta.applyToAttribute </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> allowedType </td>
      <td>
meta.Integer
<br>meta.Long
<br>meta.Float
<br>meta.Double
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvRATRApplyToAttribute">
        The applyToAttribute attribute in a ReferencedAttributeTypeRuleData must refer to a single valued AttributeDefinition
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> dmv.ReferencedAttributeTypeRuleData </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to attribute: </td>
      <td> meta.applyToAttribute </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Description: </td>
      <td> This might look a little funny, applying the rule to the applyToattribute, but
 if you think about it, it makes sense. You might think, hey, applyToAttribute is an AttributeDefinition
 so why validate that. However, it's not the applyToAttribute that we're validating, but the attribute
 that it refers to. It just happens that we're
 </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> allowedType </td>
      <td>
meta.AttributeDefinition
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvRhs">
        The rhs attribute must be a single valued Integer, Long, Float or Double
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> dmv.RelatedNumbersRuleData </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to attribute: </td>
      <td> dmv.rhs </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> allowedValueType </td>
      <td> SINGLE</td>    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> allowedType </td>
      <td>
meta.Integer
<br>meta.Long
<br>meta.Float
<br>meta.Double
      </td>
    </tr>
<!-- org.dmd.dms.doc.web.RuleInstanceFormatter.dumpRuleInstances(RuleInstanceFormatter.java:97) -->
    <tr> <td class="ruleDefName" colspan="4"> RelatedNumbersRule (CLASS)</td></tr>
    <tr>
      <td class="spacer"> </td>
      <td colspan="3" class="ruleDetailTitle">
      <a name ="dmvMinLessThanMax">
        The minLength must be less than the maxLength.
      </a>
      </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> Apply to class: </td>
      <td> dmv.ValueLengthRuleData </td>
    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td colspan="5"class="attributeSectionLabel"> Rule arguments </td>
    </tr>

    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> numericRelation </td>
      <td> LT</td>    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> lhs </td>
      <td> dmv.minLength</td>    </tr>
    <tr>
      <td class="spacer"> </td>
      <td class="spacer"> </td>
      <td> rhs </td>
      <td> dmv.maxLength</td>    </tr>
  </table>

</div> <!-- ruleInstances -->

    </div>

<!-- org.dmd.dms.doc.web.Summarizer.buildSidebar(Summarizer.java:227) -->
    <div id="sidebar">
        <a class="navLink" href="dmg.html"> dmg</a>
        <a class="navLink" href="dmp.html"> dmp</a>
        <a class="navLink" href="dmrbase.html"> dmrbase</a>
        <a class="navLink" href="dmrldap.html"> dmrldap</a>
        <a class="navLink" href="dmt.html"> dmt</a>
        <a class="navLink" href="dmv.html"> dmv</a>
        <a class="navLink" href="dmwsdl.html"> dmwsdl</a>
        <a class="navLink" href="dsdA.html"> dsdA</a>
        <a class="navLink" href="dsdB.html"> dsdB</a>
        <a class="navLink" href="dsdC.html"> dsdC</a>
        <a class="navLink" href="map.html"> map</a>
        <a class="navLink" href="meta.html"> meta</a>
        <a class="navLink" href="SchemaSummaryPage.html"> Summary </a>
    </div>
  </div> <!-- main -->

  <div id="footer"> </div>

</body>

</html>
